package com.nine.system.service;



import com.nine.common.entity.OrderFormVO101;
import com.nine.common.entity.OrderFormVO102;
import com.nine.common.tool.ResponseResult;
import com.nine.common.entity.LogForm;
import com.nine.common.entity.OrderForm;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import java.sql.Date;
import java.util.List;

/**
 * @Description:
 * @ClassName: OrderService
 * @Author: luodeng
 * @Date: 2023/6/5 16:55
 * @Version: 1.0
 */
public interface OrderService {

    ResponseResult addOrder(String productType,
                            String orderDescription,
                            int orderPriority,
                            String orderClientname,
                            String orderClientphone,
                            String orderProvince,
                            String orderCity,
                            String orderArea,
                            String orderAddress,
                            Date orderDate,
                            int orderTime);

    ResponseResult<List<LogForm>> getStatus(Long orderId);

    ResponseResult<List<OrderFormVO101>> getAll(int page, int limit);

    ResponseResult<List<OrderFormVO101>> findSome(int orderStatus,int orderPriority,String orderDate,int orderTime,String orderId,String orderClientphone,int page,int limit);

    ResponseResult<List<OrderFormVO101>> findByOrderId(String orderId,int page,int limit);

    ResponseResult<List<OrderFormVO101>> getLogs(long orderId,int page, int limit);
    ResponseResult getNo();

    ResponseResult takeOrder(long orderId);

    ResponseResult searchOrders(String orderProvince, String orderCity, String orderArea, int orderTime, int page, int limit);

    ResponseResult<OrderFormVO102> findData();

    ResponseResult<OrderFormVO102> searchData(int orderStatus,int orderPriority,String orderDate,int orderTime,String orderClientphone);

    ResponseResult getOrdersBy103();

    ResponseResult getOrdersNowEngineer();

    ResponseResult getOrdersFinishedEngineer();

    ResponseResult uploadVerify(
            Long orderId,
            MultipartFile orderVerify
    );

    ResponseResult getOrdersCheckBy102();

    ResponseResult orderFinished(long orderId,int orderCheck);

    ResponseResult getOrderCheckBy101();

    ResponseResult getOrderCount(long engineerId);

    ResponseResult returnOrder(long orderId, String reason);

    ResponseResult getOrderFormByRollbackId(int status, int page, int limit);

    ResponseResult changeRollbackStatus(Long rollbackId, int status);

    ResponseResult orderCheckBy101(long orderId,int orderCheck);

    ResponseResult getStatus4OrderCount();

    ResponseResult getOrderRollbackCount();

    ResponseResult getStatusCountBy102();

    ResponseResult getStatus2CountBy102();
}
